/*
 * @Author: szx
 * @Date: 2021-11-09 14:43:48
 * @LastEditTime: 2021-11-09 15:25:56
 * @Description:
 * @FilePath: \leetcode\100-199\162\162.cpp
 */
#include <iostream>
#include <vector>
using namespace std;
// class Solution {
//    public:
//     int findPeakElement(vector<int>& nums) {
//         int n = nums.size();
//         if (n == 1) {
//             return 0;
//         }
//         for (int i = 1; i < n - 1; i++) {
//             if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
//                 return i;
//             }
//         }
//         if (nums[0] > nums[1]) {
//             return 0;
//         }
//         if (nums[n - 2] < nums[n - 1]) {
//             return n - 1;
//         }
//         return 0;
//     }
// };

class Solution {
   public:
    int findPeakElement(vector<int>& nums) {
        int l = 0, r = nums.size() - 1;
        while (l < r) {
            int mid = (l + r) / 2;
            if (nums[mid] < nums[mid + 1]) {
                l = mid + 1;
            } else {
                r = mid;
            }
        }
        return l;
    }
};

int main() {
    Solution s;
    vector<int> v = {1, 2, 3, 4};
    // cout << v[1] << endl;
    cout << s.findPeakElement(v) << endl;

    return 0;
}